home *** CD-ROM | disk | FTP | other *** search
- 1 CLS:KEY OFF
- 2 LOCATE 1,25:PRINT "PRETTY.BAS"
- 3 PRINT
- 10 REM 'PRETTY PRINT' PROGRAMS FOR THE IBM PC BASICA
- 20 REM AUTHOR: WILLARD A BROWN, WESTERN WASHINGTON UNIVERSITY
- 30 REM COL = TAB VALUE FOR LINES ASSOCIATED WITH A STRUCTURE GROUP
- 40 REM IOLN$ = INPUT/OUTPUT LINE OF PROGRAM
- 50 REM OUTPUT FROM THIS PROGRAM WILL GO TO A FILE CALLED FILENAME.TEM
- 60 REM CARE MUST BE TAKEN TO AVOID EMBEDDING WEND AND NEXT IN IDENTIFIERS
- 64 PRINT"THIS IS A PROGRAM FOR STRUCTURING BASIC PROGRAM LISTINGS":PRINT
- 70 INPUT "TYPE A FILENAME WITHOUT .BAS (UP TO EIGHT CHARACTERS):";FILE$
- 80 FILEIN$=FILE$+".BAS"
- 90 ON ERROR GOTO 330
- 100 OPEN FILEIN$ FOR INPUT AS #3
- 110 FOR DO=(NOT EOF(3)) TO -1 'bad news
- 120 GOODFILE=-1
- 130 FILEOUT$=FILE$+".TEM"
- 140 OPEN FILEOUT$ FOR OUTPUT AS #2
- 150 LINENO$=" "
- 160 WHILE NOT EOF(3)
- 170 LINE INPUT #3, IOLN$
- 180 I=1
- 190 WHILE MID$(IOLN$,I,1)<>" " : I=I+1:WEND 'FIND END OF LINE# FIELD
- 200 LSET LINENO$=LEFT$(IOLN$,I-1) 'LEFT JUSTIFY LINE #
- 210 IOLN$=RIGHT$(IOLN$,LEN(IOLN$)-I) ' STRIP OFF LINENUMBERS
- 220 WHILE LEFT$(IOLN$,1)= " ":IOLN$=RIGHT$(IOLN$,LEN(IOLN$)-1):WEND
- 230 IF LEFT$(IOLN$,4)="FOR " OR LEFT$(IOLN$,6)="WHILE " THEN COL=COL+2
- 240 IF LEFT$(IOLN$,4)="FOR " AND INSTR(1,IOLN$,"NEXT")>0 THEN COL=COL-2
- 250 IF LEFT$(IOLN$,4)="WEND" OR LEFT$(IOLN$,4)="NEXT" THEN COL=COL-2
- 260 IF LEFT$(IOLN$,6)="WHILE " AND INSTR(1,IOLN$,"WEND")>0 THEN COL=COL-2
- 270 OUTL$=LINENO$+SPACE$(INSET)+IOLN$
- 280 INSET=COL
- 290 PRINT#2 , OUTL$
- 300 PRINT LINENO$;
- 310 WEND
- 320 NEXT DO
- 330 IF GOODFILE=0 THEN PRINT "EMPTY FILE SUBMITTED"
- 2000 CLOSE
- , OUTL$
- 300 PRINT LINENO$;
- 310 WEND
- 320 NEXT DO
- 330 IF GOODFILE=0 THEN PRINT "EMPTY FILE SUBMITTED"
- 2000 CLO